Skip to content

chore(FR-2866): disable gitBranchLockfile and retire weekly merge workflow#7359

Merged
yomybaby merged 2 commits into
mainfrom
05-12-chore_fr-2866_disable_gitbranchlockfile_and_retire_weekly_merge_workflow
May 12, 2026
Merged

chore(FR-2866): disable gitBranchLockfile and retire weekly merge workflow#7359
yomybaby merged 2 commits into
mainfrom
05-12-chore_fr-2866_disable_gitbranchlockfile_and_retire_weekly_merge_workflow

Conversation

@nowgnuesLee
Copy link
Copy Markdown
Contributor

@nowgnuesLee nowgnuesLee commented May 12, 2026

Resolves #7357(FR-2866)

Summary

Disables pnpm's per-branch lockfile feature (gitBranchLockfile: true), retires the weekly reconciliation workflow that existed solely to support it, and documents the convention for resolving pnpm-lock.yaml conflicts now that all branches share a single canonical lockfile.

Changes

  • pnpm-workspace.yaml: remove gitBranchLockfile: true. pnpm will now write directly to the canonical pnpm-lock.yaml on every branch.
  • .github/workflows/weekly-merge-branch-lockfiles.yml: delete. With gitBranchLockfile off there are no pnpm-lock.<branch>.yaml files to merge, so this scheduled workflow has no remaining purpose.
  • .claude/commands/bump-alpha-version.md: drop the obsolete "Merge pnpm Branch Lockfiles" step and matching references in the Commands Reference, Output Summary, and Example Workflow sections. Renumber the surrounding steps. Without this cleanup, future /bump-alpha-version runs would try to use a flag that no longer applies to anything.
  • .claude/rules/pnpm-lockfile-conflicts.md (new): document the project convention for resolving pnpm-lock.yaml conflicts — always take main's version (recommended: git restore --source=main pnpm-lock.yaml; in merge: git checkout --theirs; in rebase / gt sync / gt restack: git checkout --ours) then run pnpm install to let pnpm reconcile any new deps. The rule also calls out the well-known Git footgun that --ours / --theirs semantics swap between merge and rebase contexts.

Why

Per the issue (#7357):

  • Branch-specific lockfiles continued to cause intermittent CI failures even after FR-2747 disabled their auto-merge into main. The per-branch generation plus the weekly reconciliation still produced drift, surprise conflicts, and engine/version mismatches between the branch and canonical lockfiles.
  • The original benefit (isolating dep churn between long-lived feature branches) is not meaningful when most branches are short-lived agent-generated PRs.

Lockfile state

  • The working tree currently has only pnpm-lock.yaml — the most recent weekly rollup landed in PR chore: weekly merge of branch lockfiles into main #7322, so there are no local pnpm-lock.<branch>.yaml files to merge in this PR.
  • pnpm-lock.yaml is not modified by this PR. The dependency graph is unchanged.

Migration for contributors with stale branch lockfiles

If you have an open feature branch carrying its own pnpm-lock.<branch>.yaml, pnpm will not delete that orphan file automatically once this PR merges — new installs will simply write to pnpm-lock.yaml, leaving the per-branch file sitting alongside it. After rebasing onto main:

rm pnpm-lock.*.yaml   # keep pnpm-lock.yaml itself
pnpm install

(pnpm-lock.*.yaml is a shell glob that does not match pnpm-lock.yaml, so the canonical lockfile is preserved.)

Going forward: pnpm-lock.yaml conflict resolution

Now that every branch writes to the same pnpm-lock.yaml, lockfile merge conflicts will occasionally happen during rebase / gt sync. The new rule at .claude/rules/pnpm-lockfile-conflicts.md codifies the recipe:

git restore --source=main pnpm-lock.yaml   # context-independent
pnpm install                               # let pnpm reconcile your branch's new deps
git add pnpm-lock.yaml
# then: git rebase --continue / gt continue / git commit

The rule covers the rebase / merge --ours / --theirs swap, explains why hand-merging the lockfile is unsafe, and notes that taking main's lockfile without running pnpm install will break --frozen-lockfile in CI if your branch added new deps.

Related

Checklist:

  • Documentation (.claude/commands/bump-alpha-version.md updated; .claude/rules/pnpm-lockfile-conflicts.md added; migration note in this PR body)
  • Minimum required manager version
  • Specific setting for review
  • Minimum requirements to check during review (verify the four diffs; new rule reads cleanly; CI on Node 24 runs the full verify harness)
  • Test case(s) to demonstrate the difference of before/after

@github-actions github-actions Bot added the size:L 100~500 LoC label May 12, 2026
Copy link
Copy Markdown
Contributor Author


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • flow:merge-queue - adds this PR to the back of the merge queue
  • flow:hotfix - for urgent changes, fast-track this PR to the front of the merge queue

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has required the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@nowgnuesLee nowgnuesLee marked this pull request as ready for review May 12, 2026 02:43
Copilot AI review requested due to automatic review settings May 12, 2026 02:43
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR disables pnpm’s per-branch lockfile behavior by removing gitBranchLockfile: true, and retires the scheduled GitHub Actions workflow that existed only to reconcile branch lockfiles. It also updates the internal .claude command documentation so it no longer instructs contributors/agents to run obsolete lockfile-merge steps.

Changes:

  • Remove gitBranchLockfile: true from pnpm-workspace.yaml so installs update the canonical pnpm-lock.yaml directly.
  • Delete .github/workflows/weekly-merge-branch-lockfiles.yml (no longer needed without branch lockfiles).
  • Update .claude/commands/bump-alpha-version.md to remove the “merge branch lockfiles” step and renumber verification steps accordingly.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
pnpm-workspace.yaml Removes pnpm per-branch lockfile setting so the workspace uses a single canonical lockfile.
.github/workflows/weekly-merge-branch-lockfiles.yml Deletes the scheduled reconciliation workflow that merged pnpm-lock.*.yaml into pnpm-lock.yaml.
.claude/commands/bump-alpha-version.md Removes obsolete lockfile-merge instructions and updates the workflow steps/output summary.

@github-actions github-actions Bot added the chore label May 12, 2026
@nowgnuesLee
Copy link
Copy Markdown
Contributor Author

@copilot review

This PR has a second commit since the last review (0d6ef44c — docs-only addition of .claude/rules/pnpm-lockfile-conflicts.md). Please re-review the current state.

Copy link
Copy Markdown
Contributor

Copilot AI commented May 12, 2026

@copilot review

This PR has a second commit since the last review (0d6ef44c — docs-only addition of .claude/rules/pnpm-lockfile-conflicts.md). Please re-review the current state.

Re-reviewed the latest state at 0d6ef44 (including .claude/rules/pnpm-lockfile-conflicts.md) and I don’t see additional issues to raise from this update. CI for this follow-up run is currently in progress with no failed jobs so far. No UI changes in this PR, so screenshot is not applicable.

@nowgnuesLee nowgnuesLee force-pushed the 05-12-chore_fr-2866_disable_gitbranchlockfile_and_retire_weekly_merge_workflow branch from 0d6ef44 to fe56916 Compare May 12, 2026 04:35
@nowgnuesLee nowgnuesLee requested a review from yomybaby May 12, 2026 04:45
Document the project convention for resolving pnpm-lock.yaml conflicts:
always take main's version (via `git restore --source=main` or context-
aware `git checkout --theirs`/`--ours`) and re-run `pnpm install` to let
pnpm reconcile any new deps from the branch's package.json.

This is the natural follow-up policy now that gitBranchLockfile is
disabled and pnpm-lock.yaml is the single shared lockfile across all
branches.
@yomybaby yomybaby force-pushed the 05-12-chore_fr-2866_disable_gitbranchlockfile_and_retire_weekly_merge_workflow branch from fe56916 to 17b1a57 Compare May 12, 2026 10:36
Copy link
Copy Markdown
Member

@yomybaby yomybaby left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

충돌 해결 확인했습니다. pnpm-workspace.yaml에서 main의 enableGlobalVirtualStore: true는 유지하고, 이 PR의 의도대로 gitBranchLockfile: true만 제거되도록 머지했습니다. TS/lint/format 모두 PR 변경 범위 외이며 main과 동일 상태입니다.

@yomybaby yomybaby merged commit 08b7a18 into main May 12, 2026
7 checks passed
@yomybaby yomybaby deleted the 05-12-chore_fr-2866_disable_gitbranchlockfile_and_retire_weekly_merge_workflow branch May 12, 2026 10:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore size:L 100~500 LoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Disable pnpm per-branch lockfile (gitBranchLockfile)

4 participants